package com.mockapi.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 事件定义实体
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("event")
public class Event {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("route_id")
    private Long routeId;

    /**
     * 事件名称
     */
    @TableField("name")
    private String name;

    /**
     * 事件描述
     */
    @TableField("description")
    private String description;

    /**
     * 事件类型(HTTP,MESSAGE)
     */
    @TableField("event_type")
    private String eventType;

    /**
     * 触发类型(SCHEDULE,MOCK_CALL)
     */
    @TableField("trigger_type")
    private String triggerType;

    /**
     * 触发配置(JSON格式)
     */
    @TableField("trigger_config")
    private String triggerConfig;

    /**
     * 事件配置(JSON格式)
     */
    @TableField("event_config")
    private String eventConfig;

    /**
     * 是否启用
     */
    @TableField("enabled")
    private Boolean enabled;

    /**
     * 重试次数
     */
    @TableField("retry_count")
    private Integer retryCount;

    /**
     * 重试间隔(毫秒)
     */
    @TableField("retry_interval")
    private Integer retryInterval;

    /**
     * 超时时间(毫秒)
     */
    @TableField("timeout")
    private Integer timeout;

    /**
     * 创建时间
     */
    @TableField(value = "created_at", fill = FieldFill.INSERT)
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @TableField(value = "updated_at", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;
} 